package com.dnr.arch.kernel.api.model;

import java.io.Serializable;
import java.util.Collection;

import com.dnr.arch.kernel.api.rules.Rule;
import com.dnr.arch.kernel.services.persistence.exceptions.PersistenceException;

public interface Value extends Serializable{
	
	public MetaClassInterface getMetaClass();
	
	public Collection<Rule> getRules();
	
	public void setRule(Rule rule);
	
	public Object getFieldValue(String fieldName);
	
	public void synchronize() throws PersistenceException;
	
	public void synchronizeAndCommit() throws PersistenceException;
	
	public Object getCode();
	
}
